import { twMerge } from "tailwind-merge";

/**
 * 合并 Tailwind CSS 类名的工具函数
 * 使用 tailwind-merge 来智能处理类名冲突
 *
 * @param classes - 要合并的类名字符串或数组
 * @returns 合并后的类名字符串
 *
 * @example
 * ```tsx
 * // 基本用法
 * cn('px-4 py-2', 'bg-blue-500', 'text-white')
 *
 * // 条件类名
 * cn('base-class', isActive && 'active-class', className)
 *
 * // 数组形式
 * cn(['px-4', 'py-2'], ['bg-blue-500'], className)
 * ```
 */
export function cn(...classes: (string | undefined | null | false)[]): string {
  return twMerge(...classes.filter(Boolean));
}

export default cn;
